#ifndef DWGOBJECTITEM_H
#define DWGOBJECTITEM_H

#include <QGraphicsItem>

enum DrawType       // 定义图元和绘图的类型，图元类型存储在图元中，绘图类型主要应用于鼠标交互操作
{
    DNone,
    DPoint,
    DLine,
    DCircle,
    DEllipse,
    DRectangle,
    DPolyLine,
    DSPLine,
    DTriangle
};
enum ModifyType
{
    MNone,
    MSelect,
    MDelete,
    MMove,      // 开始平移图元
    MScale,     // 开始缩放图元
    MRotate     // 开始旋转图元
};

class DwgObjectItem : public QObject, public QGraphicsItem
{
    Q_OBJECT
public:
    DwgObjectItem();

    long mID;                           // 用于记录本图元的ID唯一标识号
    DrawType mType = DNone;             // 用于记录本图元的类型, 缺省是None
    int mLineWidth = 0;                 // 用于记录本图元的线宽
    Qt::PenStyle mPenStyle = Qt::SolidLine; // 用于记录本图元的线型
    QColor mColor=Qt::black;            // 用于记录本图元的颜色
    bool mSelected = false;                 // 用于记录本图元是否已经被选中

    virtual bool Select();

    // QGraphicsItem interface
public:
    virtual QRectF boundingRect() const override;
    virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override;
};

#endif // DWGOBJECTITEM_H
